var map;
var fmapLayerIndex = "";
var orgMapInfo=null;
var mapLevel = null;//地图等级全局变量
var firstLayer = null;

//联网单位初始化室内地图
var int_MainFmap = function(organizationId,el,nine,callback) {
	app.preloader.show();
	//显示
	Dao.getIndoorInfoByOrg({
		userName:userInfor.accountName,
		deviceId:appKeyObj.deviceId,
		organizationId: organizationId
	}, function(data) {
		if(data != null){
			createMap(data,el,nine);
		}else{
			if(callback){
				callback();
			}else{
				if(el){
					jQuery("#"+el).hide();
				}
			}
		}
		app.preloader.hide();
	});
}

//生成地图
var createMap=function(data,el,nine,oneMarkData){
	// 初始化
	// 定义全局map变量
	map = new fengmap.FMMap({
		// 渲染dom
		container : el?document.getElementById(el):document.getElementById('mapContent'),
		// 地图数据位置
		mapServerURL : REMOTESTATICPATH + 'fmap/data/' + data.fmapId,
		// 主题数据位置
		mapThemeURL : REMOTESTATICPATH + data.topicUrl,
//		fullScreen:true,
		// 默认比例尺级别设置为20级
		defaultMapScaleLevel : data.scaleLevel,
		// [16, 23], 比例尺级别范围， 16级到23级
		mapScaleLevelRange: [15, 23],
		//两楼层间的高度
		defaultGroupSpace: 5,
		// 关闭聚焦层切换的动画显示
		focusAnimateMode : true,
		defaultBackgroundColor:'#fff',
		defaultThemeName : data.topicName,
		focusAlphaMode : false,
		// 设置最大倾斜角
		//defaultMaxTiltAngle : 40,
		// 设置倾斜角，默认倾斜角为60度
		defaultTiltAngle : 30,
		// 开发者申请应用下web服务的key
		// key : '57c7f309aca507497d028a9c00207cf8',
		// 开发者申请应用名称
		// appName : '室内研发SDK_2_0',
		key : data.appKey,
		appName : data.appName,
	});

	// 打开Fengmap服务器的地图数据和主题
	map.openMapById(data.fmapId);
	// 地图加载完回调事件
	map.on('loadComplete', function() {
		// map.themeName='967110';
		//map.viewMode = fengmap.FMViewMode.MODE_2D;
		// 默认楼层加载完后不显示，需自定义设置要显示的楼层和聚焦层
		// 设置主题
		map.visibleGroupIDs = map.groupIDs;
        layerGroup.init(map.listGroups, map.focusGroupID);
		// 地图显示级别
		map.mapScaleLevel = {
			// 设置显示级别
			level : 19
		};
		// 设置透明
		map.setBackgroundColor('#ffffff', 0);
		// map.setBackgroundColor(0,0);
		map.groupSpace=150;
		
		if(map.fmapID=="njtlzhxf"){
            map.mapScale = 400;
		}
		if(nine == 1){
			getFacsMarkByNineSmall();
		}else{
			addOneMarker(oneMarkData);
		}
	});
 }

 function getFacsMarkByNineSmall(){
	if(nineCode){
		Dao.getFacsMarkByNineSmall_ajax({
		userName: userInfor.accountName,
		deviceId: appKeyObj.deviceId,
		nineSmallId:nineCode
		},function(data){
			if(data && data.length > 0){
				dealMarkerData(data);
			}else{
				for (var i in map.groupIDs) {
					map.getFMGroup(map.groupIDs[i]).show = true; 
				}
			}
		},false);
	}
}

//处理标注点信息
var dealMarkerData = function(markData){
    if(firstLayer){
        firstLayer.removeAll();
        firstLayer = null;
    }
    var coords = [];
    Dao.getDict({
		userName: userInfor.accountName,
        deviceId: appKeyObj.deviceId,
		code:57
	}, function(re) {
        var dataBy57 = re;
        var result = markData;
        for(var i in result){
            for(var a in dataBy57.dictValueObj){
                var dictValue57 = JSON.parse(dataBy57.dictValueObj[a].dictValue);
                for(var b in dictValue57){
                    if(dictValue57[b].id==result[i].type){
                        var coord = {
                            x:JSON.parse(result[i].mapLocation)[0].x,
                            y:JSON.parse(result[i].mapLocation)[0].y,
                            z:JSON.parse(result[i].mapLocation)[0].z,
                            height:JSON.parse(result[i].mapLocation)[0].height,
                            url:dictValue57[b].icon,
                            bizId:result[i].bizId, 
                            name:result[i].name,
                            id:result[i].id,
                            type:result[i].type,
                            relationId:result[i].relationId,
                            relationType:result[i].relationType,
                            orgId:result[i].orgId,
                            assetsIds:result[i].assetsIds
                        }
                        coords.push(coord);
                    }
                }
            }
        }
        addImageMarker(28,coords);//初始化打点
    });
}

//显示标注点
var addImageMarker = function(size,coords,level) {
	for(var i = 0; i< coords.length; i++){
		var groupLayer = map.getFMGroup(coords[i].bizId);  //获取当前楼层
		firstLayer = groupLayer.getOrCreateLayer('imageMarker');
		var im = new fengmap.FMImageMarker({
			x: coords[i].x,
			y: coords[i].y,
			z: coords[i].z,
			name:coords[i].name,
			height:2.5,
			url: coords[i].url,
			id:coords[i].id+"@"+coords[i].type+"@"+coords[i].relationId+"@"+coords[i].relationType+"@"+coords[i].orgId+"@"+coords[i].assetsIds,
			size: size,
			callback: function() {
			im.alwaysShow();
			}
		});
		firstLayer.addMarker(im);
	}
	    
    //中心点
    var pnt = {
        x:coords[0].x,
        y:coords[0].y,
        groupID:coords[0].bizId,      //目标层GroupID
        callback:function(){
            //跳转中心点完成
        }
    };
    //跳转
	map.moveTo(pnt);
	
	map.getFMGroup(coords[0].bizId).show = true;

	// 地图显示级别
	map.mapScaleLevel = {
		// 设置显示级别
		level : 20
	};
};

//显示一个
var addOneMarker = function(coords){
	if(coords){
		var location = JSON.parse(coords.mapLocation);
		var groupLayer = map.getFMGroup(coords.bizId);  //获取当前楼层
		firstLayer = groupLayer.getOrCreateLayer('imageMarker');
		var im = new fengmap.FMImageMarker({
			x: location[0].x,
			y: location[0].y,
			z: location[0].z,
			name:"",
			height:2.5,
			url: coords.mapIcon,
			size: 28,
			callback: function() {
				im.alwaysShow();
			}
		});
		firstLayer.addMarker(im);
	}	
}  
